package movee.domain.dto;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.SchemaProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

/**
 *
 *
 * @author movee
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
@Schema(description = "设备备份导出信息")
public class BackupDeviceExportDto {

    /**
     * 表id，自增ID
     */
    @ExcelProperty("ID")
    @SchemaProperty(name = "表id")
    private Long id;

    @SchemaProperty(name = "任务id")
    @ExcelProperty("任务ID")
    private Long taskId;

    @SchemaProperty(name = "主机名")
    @ExcelProperty("设备名")
    private String hostname;

    @SchemaProperty(name = "管理ip")
    @ExcelProperty("管理IP")
    private String mgmtIp;

    @SchemaProperty(name = "任务状态")
    @ExcelProperty("状态")
    private String status;

    /**
     * 指令平台操作id
     */
    @SchemaProperty(name = "指令平台操作id")
    @ExcelProperty("cmdId")
    private String cmdId;

    /**
     * 失败原因类型
     */
    @SchemaProperty(name = "失败类型")
    @ExcelProperty("错误类型")
    private String errType;

    /**
     * 失败原因类型
     */
    @SchemaProperty(name = "失败信息")
    @ExcelProperty("错误信息")
    private String errMsg;

    /**
     * 开始时间
     */
    @SchemaProperty(name = "备份时间")
    @ExcelProperty("备份时间")
    private String startTime;

    /**
     * 操作花费的时间，单位为毫秒
     */
    @SchemaProperty(name = "执行时间")
    @ExcelProperty("备份时长（单位：毫秒）")
    private Long durationMs;

    /**
     * 文件大小
     */
    @SchemaProperty(name = "文件大小")
    @ExcelProperty("文件大小（单位：字节）")
    private Long fileSize;

    /**
     * 操作单是否绑定NSC，0：否；1：是
     */
    @SchemaProperty(name = "与上次备份相比，是否发生了变化")
    @ExcelProperty("是否变化")
    private String changed;

    @SchemaProperty(name = "执行人")
    @ExcelProperty("操作人")
    private String operator;

    @SchemaProperty(name = "物理机房")
    @ExcelProperty("IDC")
    private String idc;

    @SchemaProperty(name = "逻辑机房")
    @ExcelProperty("IAZ")
    private String iaz;

    @SchemaProperty(name = "集群")
    @ExcelProperty("集群")
    private String cluster;

    @SchemaProperty(name = "pod")
    @ExcelProperty("POD")
    private String pod;

    @SchemaProperty(name = "角色")
    @ExcelProperty("角色")
    private String role;

    @SchemaProperty(name = "厂商")
    @ExcelProperty("厂商")
    private String vendor;

    @SchemaProperty(name = "型号")
    @ExcelProperty("信号")
    private String model;

}
